package org.example.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "recruitmentrequirement")
public class Recruitmentrequirement {
    /**
     * 编号，招聘需求唯一标识符
     */
    @TableId(value = "RequirementID", type = IdType.INPUT)
    private Integer requirementid;

    /**
     * 岗位名称
     */
    @TableField(value = "JobName")
    private String jobname;

    /**
     * 归属部门编号，父级部门ID
     */
    @TableField(value = "DepartmentID")
    private Integer departmentid;

    /**
     * 需求提交人
     */
    @TableField(value = "DemandSubmitter")
    private String demandsubmitter;

    /**
     * 负责招聘的HR人员ID，关联员工表
     */
    @TableField(value = "RecruiterID")
    private Integer recruiterid;

    /**
     * 需求类型
     */
    @TableField(value = "Type_of_demand")
    private String typeOfDemand;

    /**
     * 招聘人数
     */
    @TableField(value = "NumberOfPositions")
    private Integer numberofpositions;

    /**
     * 岗位职责表述
     */
    @TableField(value = "JobDescription")
    private String jobdescription;

    /**
     * 岗位要求
     */
    @TableField(value = "Qualifications")
    private String qualifications;

    /**
     * 薪资范围
     */
    @TableField(value = "BudgetSalary")
    private String budgetsalary;

    /**
     * 岗位性质（如正式、实习、兼职、劳务派遣）
     */
    @TableField(value = "JobNature")
    private String jobnature;

    /**
     * 人员来源（如校招、社招、内聘）
     */
    @TableField(value = "SourceOfPersonnel")
    private String sourceofpersonnel;

    /**
     * 状态（开启、关闭）
     */
    @TableField(value = "`Status`")
    private String status;

    /**
     * 创建时间
     */
    @TableField(value = "CreationDate")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat (pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date creationdate;

    /**
     * 性别要求
     */
    @TableField(value = "GenderRequirement")
    private String genderrequirement;

    /**
     * 年龄要求
     */
    @TableField(value = "AgeRequirement")
    private Integer agerequirement;

    /**
     * 出差要求
     */
    @TableField(value = "TravelRequirement")
    private String travelrequirement;

    /**
     * 学历要求
     */
    @TableField(value = "EducationLevel")
    private String educationlevel;

    /**
     * 工作年限
     */
    @TableField(value = "YearsOfExperienceMin")
    private String yearsofexperiencemin;

    /**
     * 地点
     */
    @TableField(value = "WorkLocation")
    private String worklocation;

    /**
     * 工作经历
     */
    @TableField(value = "WorkExperience")
    private String workexperience;

    /**
     * 期望到岗
     */
    @TableField(value = "ExpectToBeOnDuty")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat (pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date expecttobeonduty;

    /**
     * 发放模式
     */
    @TableField(value = "DistributionMode")
    private String distributionmode;

    @TableField(exist = false)
    private Department department;
}